package buffer1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

/*练习一:字节输出流写出字节数据
        描述:利用字节输出流一次写一个字节的方式，向D盘的a.txt文件输出字符‘a’。
   练习二:字节输出流写出字节数组数据
        描述:利用字节输出流一次写一个字节数组的方式向D盘的b.txt文件输出内容:"i love java"。
   练习三:文件的续写和换行输出
        描述:在D盘下，有一c.txt 文件中内容为：HelloWorld 
        在c.txt文件原内容基础上，添加五句 I love java，而且要实现一句一行操作(注：原文不可覆盖)。
        利用字节输出流对象往C盘下c.txt文件输出5句：”i love java”
    练习四:字节输入流一次读取一个字节数据
        描述:利用字节输入流读取D盘文件a.txt的内容，文件内容确定都为纯ASCII字符
        ,使用循环读取，一次读取一个字节，直到读取到文件末尾。将读取的字节输出到控制台
    练习五:字节输入流一次读取一个字节数组数据
        描述:利用字节输入流读取D盘文件b.txt的内容，文件内容确定都为纯ASCII字符
        ,使用循环读取，一次读取一个字节数组，直到读取到文件末尾，将读取到的字节数组转换成字符串输出到控制台。
     练习六:字节流复制文件
        描述:利用字节流将E盘下的a.png图片复制到D盘下(文件名保存一致)
        要求：*/
public class Test {//

    public static void main(String[] args) throws Exception {///
        FileOutputStream fos = new FileOutputStream("D:\\a.txt");//
        char a = 'b';//需求一
        fos.write(a);//需求一写一个字节到指定文件夹
        String s = "i love java";//写一个字符数组到指定文件夹
        fos.write(s.getBytes());//使用write方法写入数据
        fos.close();//关闭资源
        FileOutputStream fos1 = new FileOutputStream("D:\\a.txt", true);//创建字节输出流对象，true为表示覆盖
        for (int i = 0; i < 5; i++) {//使用for循环进行遍历
            fos1.write("i love java".getBytes());//写入数据
            fos1.write("\r\n".getBytes());//换行
            fos1.write("HelloWorld".getBytes());//写入数据
            fos1.write("\r\n".getBytes());//换行
        }
        fos1.close();//关闭资源
      FileInputStream fis = new FileInputStream("D:\\a.txt");//创建字节输入流对象
      int ten;//定义变量存储读取的有效数据
     while ((ten = fis.read()) != -1) {///使用while循环
           System.out.print((char) ten);//输出读取的数据
      }

     FileInputStream fis1 = new FileInputStream("D:\\a.txt");//创建字节输入流对象
        char[] chars = new char[1024];//定义数组指定读取数据的长度
        int ten1;//定义变量储存读取数据的有效长度
        while ((ten1 = fis1.read()) != -1) {//使用while循环进行读取数据
            System.out.println((char)ten1);//输出读取的数据
        }
        fis1.close();//关闭资源

    }
}
